From 0e601c0a70b55c2f42322c24b3351f9f28e4c196 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20=C3=85dahl?= Date: Tue, 17 Mar 2020 15:23:57 +0100 Subject: [PATCH] wayland: Move toplevel/popup/drag surface definitions higher up We them up there, so that code higher up compared to where they are defined now can make use of them. Also add a few macros for type checking and casting. --- gdk/wayland/gdksurface-wayland.c | 126 +++++++++++++++++-------------- 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index 5e734e6ecd..cb4d5cfb68 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -200,6 +200,74 @@ struct _GdkWaylandSurfaceClass GdkSurfaceClass parent_class; }; +G_DEFINE_TYPE (GdkWaylandSurface, gdk_wayland_surface, GDK_TYPE_SURFACE) + +typedef struct _GdkWaylandToplevel GdkWaylandToplevel; +struct _GdkWaylandToplevel +{ + GdkWaylandSurface parent_instance; +}; + +typedef struct +{ + GdkWaylandSurfaceClass parent_class; +} GdkWaylandToplevelClass; + +static void gdk_wayland_toplevel_iface_init (GdkToplevelInterface *iface); + +GType gdk_wayland_toplevel_get_type (void) G_GNUC_CONST; + +#define GDK_IS_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_TOPLEVEL)) +#define GDK_WAYLAND_TOPLEVEL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_TOPLEVEL, GdkWaylandToplevel)) + +#define GDK_TYPE_WAYLAND_TOPLEVEL (gdk_wayland_toplevel_get_type ()) +G_DEFINE_TYPE_WITH_CODE (GdkWaylandToplevel, gdk_wayland_toplevel, GDK_TYPE_WAYLAND_SURFACE, + G_IMPLEMENT_INTERFACE (GDK_TYPE_TOPLEVEL, + gdk_wayland_toplevel_iface_init)) + +typedef struct +{ + GdkWaylandSurface parent_instance; +} GdkWaylandPopup; + +typedef struct +{ + GdkWaylandSurfaceClass parent_class; +} GdkWaylandPopupClass; + +static void gdk_wayland_popup_iface_init (GdkPopupInterface *iface); + +GType gdk_wayland_popup_get_type (void) G_GNUC_CONST; + +#define GDK_IS_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_POPUP)) +#define GDK_WAYLAND_POPUP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WAYLAND_POPUP, GdkWaylandPopup)) + +#define GDK_TYPE_WAYLAND_POPUP (gdk_wayland_popup_get_type ()) +G_DEFINE_TYPE_WITH_CODE (GdkWaylandPopup, gdk_wayland_popup, GDK_TYPE_WAYLAND_SURFACE, + G_IMPLEMENT_INTERFACE (GDK_TYPE_POPUP, + gdk_wayland_popup_iface_init)) + +typedef struct +{ + GdkWaylandSurface parent_instance; +} GdkWaylandDragSurface; + +typedef struct +{ + GdkWaylandSurfaceClass parent_class; +} GdkWaylandDragSurfaceClass; + +static void gdk_wayland_drag_surface_iface_init (GdkDragSurfaceInterface *iface); + +GType gdk_wayland_drag_surface_get_type (void) G_GNUC_CONST; + +#define GDK_IS_WAYLAND_DRAG_SURFACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WAYLAND_DRAG_SURFACE)) + +#define GDK_TYPE_WAYLAND_DRAG_SURFACE (gdk_wayland_drag_surface_get_type ()) +G_DEFINE_TYPE_WITH_CODE (GdkWaylandDragSurface, gdk_wayland_drag_surface, GDK_TYPE_WAYLAND_SURFACE, + G_IMPLEMENT_INTERFACE (GDK_TYPE_DRAG_SURFACE, + gdk_wayland_drag_surface_iface_init)) + static void gdk_wayland_surface_maybe_resize (GdkSurface *surface, int width, int height, @@ -231,16 +299,6 @@ static void update_popup_layout_state (GdkSurface *surface, static gboolean gdk_wayland_surface_is_exported (GdkSurface *surface); -G_DEFINE_TYPE (GdkWaylandSurface, gdk_wayland_surface, GDK_TYPE_SURFACE) - -GType gdk_wayland_toplevel_get_type (void) G_GNUC_CONST; -GType gdk_wayland_popup_get_type (void) G_GNUC_CONST; -GType gdk_wayland_drag_surface_get_type (void) G_GNUC_CONST; - -#define GDK_TYPE_WAYLAND_TOPLEVEL (gdk_wayland_toplevel_get_type ()) -#define GDK_TYPE_WAYLAND_POPUP (gdk_wayland_popup_get_type ()) -#define GDK_TYPE_WAYLAND_DRAG_SURFACE (gdk_wayland_drag_surface_get_type ()) - static void gdk_wayland_surface_init (GdkWaylandSurface *impl) { @@ -4285,22 +4343,6 @@ create_dnd_surface (GdkDisplay *display) #define LAST_PROP 1 -typedef struct -{ - GdkWaylandSurface parent_instance; -} GdkWaylandPopup; - -typedef struct -{ - GdkWaylandSurfaceClass parent_class; -} GdkWaylandPopupClass; - -static void gdk_wayland_popup_iface_init (GdkPopupInterface *iface); - -G_DEFINE_TYPE_WITH_CODE (GdkWaylandPopup, gdk_wayland_popup, GDK_TYPE_WAYLAND_SURFACE, - G_IMPLEMENT_INTERFACE (GDK_TYPE_POPUP, - gdk_wayland_popup_iface_init)) - static void gdk_wayland_popup_init (GdkWaylandPopup *popup) { @@ -4410,22 +4452,6 @@ gdk_wayland_popup_iface_init (GdkPopupInterface *iface) iface->get_position_y = gdk_wayland_popup_get_position_y; } -typedef struct -{ - GdkWaylandSurface parent_instance; -} GdkWaylandToplevel; - -typedef struct -{ - GdkWaylandSurfaceClass parent_class; -} GdkWaylandToplevelClass; - -static void gdk_wayland_toplevel_iface_init (GdkToplevelInterface *iface); - -G_DEFINE_TYPE_WITH_CODE (GdkWaylandToplevel, gdk_wayland_toplevel, GDK_TYPE_WAYLAND_SURFACE, - G_IMPLEMENT_INTERFACE (GDK_TYPE_TOPLEVEL, - gdk_wayland_toplevel_iface_init)) - static void gdk_wayland_toplevel_init (GdkWaylandToplevel *toplevel) { @@ -4733,22 +4759,6 @@ gdk_wayland_toplevel_iface_init (GdkToplevelInterface *iface) iface->restore_system_shortcuts = gdk_wayland_toplevel_restore_system_shortcuts; } -typedef struct -{ - GdkWaylandSurface parent_instance; -} GdkWaylandDragSurface; - -typedef struct -{ - GdkWaylandSurfaceClass parent_class; -} GdkWaylandDragSurfaceClass; - -static void gdk_wayland_drag_surface_iface_init (GdkDragSurfaceInterface *iface); - -G_DEFINE_TYPE_WITH_CODE (GdkWaylandDragSurface, gdk_wayland_drag_surface, GDK_TYPE_WAYLAND_SURFACE, - G_IMPLEMENT_INTERFACE (GDK_TYPE_DRAG_SURFACE, - gdk_wayland_drag_surface_iface_init)) - static void gdk_wayland_drag_surface_init (GdkWaylandDragSurface *surface) { -- 2.30.2